/**********************************************************************************************/
/* FBL_Value_Factories.h																	  */
/*                                                                       					  */
/* Copyright Paradigma, 1993-2006                                        					  */
/* All Rights Reserved.                                                 					  */
/**********************************************************************************************/

#ifndef _FBL_Value_Factories_h
   #define _FBL_Value_Factories_h
#pragma once

// fbl inculdes
#include <VShared/FBL/publ/Interfaces/FBL_I_Value.h>


#include <VShared/FBL/publ/Headers/FBL_pre_header.h>


/**********************************************************************************************/
FBL_Begin_Namespace


/**********************************************************************************************/
// Functions-factories creating value of KERNEL types
/**********************************************************************************************/

I_Value*	CreateValueBoolean		( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueByte			( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueShort		( bool inNullable, void* inParam1, void* inParam2 );
I_Value*	CreateValueUShort		( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueLong			( bool inNullable, void* inParam1, void* inParam2 );
I_Value*	CreateValueULong		( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueLLong		( bool inNullable, void* inParam1, void* inParam2 );
I_Value*	CreateValueULLong		( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueFloat		( bool inNullable, void* inParam1, void* inParam2 );
I_Value*	CreateValueDouble		( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueString		( bool inNullable, void* inParam1, void* inParam2 );
I_Value*	CreateValueVarChar		( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueDate			( bool inNullable, void* inParam1, void* inParam2 );
I_Value*	CreateValueTime			( bool inNullable, void* inParam1, void* inParam2 );
I_Value*	CreateValueDateTime		( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueMedium		( bool inNullable, void* inParam1, void* inParam2 );
I_Value*	CreateValueUMedium		( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueFixedBinary	( bool inNullable, void* inParam1, void* inParam2 );
I_Value*	CreateValueVarBinary	( bool inNullable, void* inParam1, void* inParam2 );
I_Value*	CreateValueBLOB			( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValuePicture		( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueText			( bool inNullable, void* inParam1, void* inParam2 );

I_Value*	CreateValueObjectPtr	( bool inNullable, void* inParam1, void* inParam2 );



/**********************************************************************************************/
FBL_End_Namespace


/**********************************************************************************************/
#include <VShared/FBL/publ/Headers/FBL_post_header.h>


/**********************************************************************************************/
#endif // _FBL_Value_Factories_h
